/*
CREDITS:
INFO - Frankensprite - a sprite made of parts of other sprites.
Just like frankenstein is a mashup of other people's limbs. Crazy, eh?

"Godsend" Fire Pillar idea and weapon name - Enemy Territory: Quake Wars (ID Soft.)

GRAPHICS:
Frankensprite parts - 3DRealms
Original frankensprite - Mophead561
New frankensprite - Zrrion the Insect
Fancy charge effect - Cage
Awful Recolor - PillowBlaster
Projectiles & Fire pillar sprites - KeksDose
The barrel-part charge effect - Folks from AEoD

SOUNDS:
Up, Reload, Zoom In, Zoom Out - Bulletstorm (People can Fly, Epic Games. Ripped by folks from AEoD.)
Fire - ??
Hit - Doom 3 (ID Soft.)
Alt - Croteam (Serious Sam 2)
Charge - UT2k4 (Epic Games)
Start, Loop, End - Enemy Territory: Quake Wars (ID Soft.)
Loop2 - C&C Renegade (Westwood Ent.)
Burn - Wolfenstein 3 (Raven Soft.)
*/
#include "Decorate/Weapons/Set 3/Godsend.txt"

ACTOR Violator : Weapon 24531
{
	//$Category Weapons
	//$Title Violator
	//$Sprite VOLGX0
	Inventory.PickupMessage "You've got the ''Violator'' sunstroke cannon! Sinestra ignis! Menta Potens! Crudux Cruoooo!! (3)"
	Obituary "%o was grilled by %k's sunstroke cannon."
	Weapon.UpSound "Violator/Up"
	Weapon.SelectionOrder 6
	Weapon.AmmoType "ErasusAmmo"
	Weapon.AmmoUse 4
	Weapon.AmmoGive 24
	Weapon.AmmoType2 "ViolatorCharge"
	Weapon.AmmoUse2 50
	Weapon.AmmoGive2 0
	Weapon.SlotNumber 3
	Weapon.Kickback 50
	+NOALERT
	+ALT_AMMO_OPTIONAL
	Scale 0.9
	States {
		Spawn: 
			VOLG X -1
			Stop
		Ready:
			VOLG A 0 A_JumpIfInventory("Zoomed",1,"ZoomedReady")
			VOLG A 1 A_WeaponReady
			TNT1 A 0 A_JumpIfInventory("RO_GotoReload", 1, "Reload")
			TNT1 A 0 A_JumpIfInventory("RO_GotoZoom", 1, "Zoom")
			Loop
		Select:
			VOLG A 1 A_Raise
			VOLG A 0 A_Raise
			Loop
		Deselect:
			VOLG A 0 A_JumpIfInventory("Zoomed",1,"ZoomedDeselect")
			VOLG A 0 A_ZoomFactor(1)
			VOLG A 0 A_StopSound(5)
			VOLG A 0 A_SetTranslucent(1,0)
			VOLG A 1 A_Lower
			VOLG A 0 A_Lower
			Loop
		Fire:
			VOLG A 0 A_JumpIfInventory("Zoomed",1,"ZoomedFire")
			VOLF A 0 A_GunFlash
			VOLF A 0 A_AlertMonsters
			VOLF A 0 A_Recoil(10)
			VOLF A 0 A_PlaySound("Violator/Fire",1,1.0)
			VOLF A 0 A_FireCustomMissile("ViolatorFireburst",frandom(10.000,-10.000),1,14,0,0,frandom(4.000,-4.000))
			VOLF AAAAAAA 0 A_FireCustomMissile("ViolatorFireburst",frandom(10.000,-10.000),0,14,0,0,frandom(4.000,-4.000))
			VOLF A 0 A_JumpIfInventory("ViolatorCharge",1,"MOOOOOREWEPOOOOOON")
		FlamingComissarVirtuoso:
			VOLF A 0 A_Quake(3,14,0,32,none)
			VOLF A 0 A_GiveInventory("ErasusCasing",4)
			VOLF A 0 A_SetAngle(Angle-2.5)
			VOLF A 0 A_SetPitch(Pitch-2)
			VOLF A 1 Bright A_ZoomFactor(0.99)
			SSHG F 0 A_SetAngle(Angle-2)
			SSHG F 0 A_SetPitch(Pitch-1.5)
			VOLF B 1 A_ZoomFactor(0.98)
			VOLF A 0 A_PlaySound("Violator/Reload",5,0.5)
			TNT1 A 0 A_SetAngle(Angle+1.25)
			TNT1 A 0 A_SetPitch(Pitch+1)
			VOLF C 1 A_ZoomFactor(0.96)
			TNT1 A 0 A_SetAngle(Angle+1)
			TNT1 A 0 A_SetPitch(Pitch+0.75)
			VOLF D 1 A_ZoomFactor(0.94)
			TNT1 A 0 A_SetAngle(Angle+0.75)
			TNT1 A 0 A_SetPitch(Pitch+0.5)
			VOLF E 1 A_ZoomFactor(0.93)
			TNT1 A 0 A_SetAngle(Angle+0.5)
			TNT1 A 0 A_SetPitch(Pitch+0.25)
			VOLF F 1 A_ZoomFactor(0.92)
			TNT1 A 0 A_SetAngle(Angle+0.25)
			TNT1 A 0 A_SetPitch(Pitch+0.25)
			VOLF G 1 A_ZoomFactor(0.93)
			TNT1 A 0 A_SetAngle(Angle+0.125)
			TNT1 A 0 A_SetPitch(Pitch+0.25)
			VOLF H 1 A_ZoomFactor(0.94)
			TNT1 A 0 A_SetAngle(Angle+0.125)
			TNT1 A 0 A_SetPitch(Pitch+0.25)
			VOLR A 1 A_ZoomFactor(0.95)
			TNT1 A 0 A_SetAngle(Angle+0.125)
			TNT1 A 0 A_SetPitch(Pitch+0.125)
			VOLR A 1 A_ZoomFactor(0.96)
			TNT1 A 0 A_SetAngle(Angle+0.125)
			TNT1 A 0 A_SetPitch(Pitch+0.125)
			VOLR B 1 A_ZoomFactor(0.97)
			VOLR B 1 A_ZoomFactor(0.98)
			VOLR C 1 A_ZoomFactor(0.99)
			VOLR C 1 A_ZoomFactor(1)
			VOLR DD 1
			VOLG A 5
			Goto Ready
		MOOOOOREWEPOOOOOON:
			VOLF A 0 A_JumpIfInventory("ErasusAmmo",1,1)
			Goto FlamingComissarVirtuoso
			VOLF A 0 A_GiveInventory("ErasusCasing",1)
			VOLF A 0 A_TakeInventory("ErasusAmmo",1,TIF_NOTAKEINFINITE)
			VOLF A 0 A_TakeInventory("ViolatorCharge",1)
			VOLF AA 0 A_FireCustomMissile("ViolatorFireburst",frandom(10.000,-10.000),0,14,0,0,frandom(4.000,-4.000))
			VOLF A 0 A_JumpIfInventory("ViolatorCharge",1,"MOOOOOREWEPOOOOOON")
			Goto FlamingComissarVirtuoso
		Reload:
			VOLG A 0 A_JumpIfInventory("ErasusCasing",50,1)
			Goto Ready
			VOLG A 0 A_JumpIfInventory("Zoomed",1,"ZoomedReload")
			VOLF A 0 A_GunFlash
			VOLF A 0 A_AlertMonsters
			VOLF A 0 A_Recoil(10)
			VOLF A 0 A_PlaySound("Weapons/ErasusAltFire",1,0.9)
			VOLF A 0 A_PlaySound("Weapons/ErasusHammerFire",6,0.9)
			VOLF A 0 A_JumpIfInventory("QuadUpgrade",1,"QuadReload")
			Goto Hnnnnng
		QuadReload:
			SSHG A 0 A_SetBlend("Blue",0.05,16)
			SSHG A 0 A_PlaySoundEx("Weapons/QuadShot","Auto")
		Hnnnnng:
			VOLF A 0 A_FireCustomMissile("ViolatorSixpack",0,0,14,0,0,0)
			VOLF A 0 A_TakeInventory("ErasusCasing",50)
			VOLF A 0 A_SetAngle(Angle-2.5)
			VOLF A 0 A_SetPitch(Pitch-2)
			VOLS A 1 A_ZoomFactor(0.99)
			SSHG F 0 A_SetAngle(Angle-2)
			SSHG F 0 A_SetPitch(Pitch-1.5)
			VOLS B 1 A_ZoomFactor(0.98)
			VOLF A 0 A_PlaySound("Violator/Reload",5,0.5)
			TNT1 A 0 A_SetAngle(Angle+1.25)
			TNT1 A 0 A_SetPitch(Pitch+1)
			VOLS C 1 A_ZoomFactor(0.97)
			TNT1 A 0 A_SetAngle(Angle+1)
			TNT1 A 0 A_SetPitch(Pitch+0.75)
			VOLS D 1 A_ZoomFactor(0.95)
			TNT1 A 0 A_SetAngle(Angle+0.75)
			TNT1 A 0 A_SetPitch(Pitch+0.5)
			VOLS E 1 A_ZoomFactor(0.94)
			TNT1 A 0 A_SetAngle(Angle+0.5)
			TNT1 A 0 A_SetPitch(Pitch+0.25)
			VOLS F 1 A_ZoomFactor(0.93)
			TNT1 A 0 A_SetAngle(Angle+0.25)
			TNT1 A 0 A_SetPitch(Pitch+0.25)
			VOLS G 1 A_ZoomFactor(0.935)
			TNT1 A 0 A_SetAngle(Angle+0.125)
			TNT1 A 0 A_SetPitch(Pitch+0.25)
			VOLS H 1 A_ZoomFactor(0.94)
			TNT1 A 0 A_SetAngle(Angle+0.125)
			TNT1 A 0 A_SetPitch(Pitch+0.25)
			VOLR A 1 A_ZoomFactor(0.95)
			TNT1 A 0 A_SetAngle(Angle+0.125)
			TNT1 A 0 A_SetPitch(Pitch+0.125)
			VOLR A 1 A_ZoomFactor(0.96)
			TNT1 A 0 A_SetAngle(Angle+0.125)
			TNT1 A 0 A_SetPitch(Pitch+0.125)
			VOLR B 1 A_ZoomFactor(0.97)
			VOLR B 1 A_ZoomFactor(0.98)
			VOLR C 1 A_ZoomFactor(0.99)
			VOLR C 1 A_ZoomFactor(1)
			VOLR DD 1
			VOLG A 5
			Goto Ready
	    AltFire:
			VOLG A 0 A_JumpIfInventory("Zoomed",1,"ZoomedAltFire")
			VOLC A 0 A_JumpIfInventory("ViolatorCharge",10,"UnleashTheFirestorm")
	    HolyCornishon:
			VOLG A 0 A_JumpIfInventory("ErasusAmmo",1,1)
			Goto Ready
			VOLC A 0 A_Quake(1,25,0,16,none)
		    	VOLC A 0 A_PlaySound("Violator/Charge",5,0.7,1)
			VOLC ABCDEFGHIJKLMNOPQRSTUVWXY 1 Bright
			VOLC A 0 A_GiveInventory("ViolatorCharge",1)
			VOLC A 0 A_ReFire("HolyCornishon")
			VOLC A 0 A_StopSound(5)
			Goto Ready
	    UnleashTheFirestorm:
			VOLG A 0 A_JumpIfInventory("ErasusAmmo",50,1)
			Goto Ready
			VOLF A 0 A_TakeInventory("Erasusammo",50)
			VOLF A 0 A_GiveInventory("ErasusCasing",50)
			VOLF A 0 A_TakeInventory("ViolatorCharge",10)
			VOLF A 0 A_GunFlash
			VOLF A 0 A_AlertMonsters
			VOLF A 0 A_Recoil(25)
			VOLF A 0 A_PlaySound("Violator/Fire",1,1.0)
			VOLF A 0 A_PlaySound("Violator/Alt",1,1.0)
			VOLF A 0 A_SetBlend("Orange",0.5,15)
			VOLF A 0 A_FireCustomMissile("Godsend")
			VOLF A 0 A_Quake(8,16,0,128,none)
			VOLF A 0 A_SetAngle(Angle-5)
			VOLF A 0 A_SetPitch(Pitch-4)
			VOLF A 1 Bright A_ZoomFactor(0.99)
			SSHG F 0 A_SetAngle(Angle-4)
			SSHG F 0 A_SetPitch(Pitch-3)
			VOLF B 1 A_ZoomFactor(0.98)
			VOLF A 0 A_PlaySound("Violator/Reload",5,0.5)
			TNT1 A 0 A_SetAngle(Angle+2.5)
			TNT1 A 0 A_SetPitch(Pitch+2)
			VOLF C 1 A_ZoomFactor(0.96)
			TNT1 A 0 A_SetAngle(Angle+2)
			TNT1 A 0 A_SetPitch(Pitch+1.5)
			VOLF D 1 A_ZoomFactor(0.94)
			TNT1 A 0 A_SetAngle(Angle+1.5)
			TNT1 A 0 A_SetPitch(Pitch+1)
			VOLF E 1 A_ZoomFactor(0.93)
			TNT1 A 0 A_SetAngle(Angle+1)
			TNT1 A 0 A_SetPitch(Pitch+0.5)
			VOLF F 1 A_ZoomFactor(0.92)
			TNT1 A 0 A_SetAngle(Angle+0.5)
			TNT1 A 0 A_SetPitch(Pitch+0.5)
			VOLF G 1 A_ZoomFactor(0.93)
			TNT1 A 0 A_SetAngle(Angle+0.25)
			TNT1 A 0 A_SetPitch(Pitch+0.5)
			VOLF H 1 A_ZoomFactor(0.94)
			TNT1 A 0 A_SetAngle(Angle+0.25)
			TNT1 A 0 A_SetPitch(Pitch+0.5)
			VOLR A 1 A_ZoomFactor(0.95)
			TNT1 A 0 A_SetAngle(Angle+0.25)
			TNT1 A 0 A_SetPitch(Pitch+0.25)
			VOLR A 1 A_ZoomFactor(0.96)
			TNT1 A 0 A_SetAngle(Angle+0.25)
			TNT1 A 0 A_SetPitch(Pitch+0.25)
			VOLR B 1 A_ZoomFactor(0.97)
			VOLR B 1 A_ZoomFactor(0.98)
			VOLR C 1 A_ZoomFactor(0.99)
			VOLR C 1 A_ZoomFactor(1)
			VOLR DD 1
			VOLG A 5
			Goto Ready
		Zoom:
			VOLG A 0 A_JumpIfInventory("Zoomed",1,"UnZoom")
			VOLG A 0 A_GiveInventory("Zoomed",1)
			VOLG A 0 A_PlaySound("Violator/Zoom/In",8)
			VOLG A 1 A_SetBlend("Black",0.15,3)
			VOLG A 1 A_SetBlend("Black",0.3,3)
			VOLG A 1 A_SetBlend("Black",0.45,3)
			VOLG A 1 A_SetBlend("Black",0.6,3)
			VOLG A 1 A_SetBlend("Black",0.75,3)
			VOLG A 1 A_SetBlend("Black",0.9,3)
			VOLG A 1 A_SetBlend("Black",1.0,3)
			VOLG A 0 A_SetTranslucent(0.98,0)
			VOLZ AAAAAAAAA 1 A_SetBlend("Black",1.0,11)
			VOLZ A 0 A_ZoomFactor(1.5)
			VOLZ A 1 A_SetBlend("Black",0.9,3)
			VOLZ A 0 A_ZoomFactor(1.75)
			VOLZ A 1 A_SetBlend("Black",0.75,3)
			VOLZ A 0 A_ZoomFactor(2)
			VOLZ A 1 A_SetBlend("Black",0.6,3)
			VOLZ A 0 A_ZoomFactor(2.25)
			VOLZ A 1 A_SetBlend("Black",0.45,3)
			VOLZ A 0 A_ZoomFactor(2.5)
			VOLZ A 1 A_SetBlend("Black",0.3,3)
			VOLZ A 0 A_ZoomFactor(2.75)
			VOLZ A 1 A_SetBlend("Black",0.15,3)
			VOLZ A 0 A_ZoomFactor(3)
			VOLZ A 5
			Goto Ready
		UnZoom:
			VOLZ A 0 A_PlaySound("Violator/Zoom/Out",5)
			VOLZ A 0 A_TakeInventory("Zoomed",999)

			VOLZ A 0 A_ZoomFactor(2.75)
			VOLZ A 0 A_SetTranslucent(0.9,0)
			VOLZ A 1 A_SetBlend("Black",0.25,3) 
      
			VOLZ A 0 A_ZoomFactor(2.5)
			VOLZ A 0 A_SetTranslucent(0.92,0)
			VOLZ A 1 A_SetBlend("Black",0.3,3)
      
			VOLZ A 0 A_ZoomFactor(2.25)
			VOLZ A 0 A_SetTranslucent(0.94,0)
			VOLZ A 1 A_SetBlend("Black",0.45,3)
			VOLZ A 0 A_ZoomFactor(1.00)
      
			VOLZ A 0 A_ZoomFactor(2)
			VOLZ A 0 A_SetTranslucent(0.96,0)
			VOLZ A 1 A_SetBlend("Black",0.6,3)
      
			VOLZ A 0 A_ZoomFactor(1.75)
			VOLZ A 0 A_SetTranslucent(0.98,0)
			VOLZ A 1 A_SetBlend("Black",0.75,3)
      
			VOLZ A 0 A_ZoomFactor(1.5)
			VOLZ A 0 A_SetTranslucent(1,0)
			VOLZ A 1 A_SetBlend("Black",0.9,3)
      
			VOLZ A 0 A_ZoomFactor(1.0)
			VOLZ A 1 A_SetBlend("Black",0.9,3)
			VOLG AAAAAAAAA 1 A_SetBlend("Black",1,3)

			VOLG A 15 A_SetBlend("Black",0.9,10)
			VOLG A 1
			Goto Ready
		ZoomedDeselect:
			VOLZ A 0 A_PlaySound("Violator/Zoom/Out",5)
			VOLZ A 0 A_TakeInventory("Zoomed",999)

			VOLZ A 0 A_ZoomFactor(2.75)
			VOLZ A 0 A_SetTranslucent(0.9,0)
			VOLZ A 1 A_SetBlend("Black",0.25,3) 
      
			VOLZ A 0 A_ZoomFactor(2.5)
			VOLZ A 0 A_SetTranslucent(0.92,0)
			VOLZ A 1 A_SetBlend("Black",0.3,3)
      
			VOLZ A 0 A_ZoomFactor(2.25)
			VOLZ A 0 A_SetTranslucent(0.94,0)
			VOLZ A 1 A_SetBlend("Black",0.45,3)
			VOLZ A 0 A_ZoomFactor(1.00)
      
			VOLZ A 0 A_ZoomFactor(2)
			VOLZ A 0 A_SetTranslucent(0.96,0)
			VOLZ A 1 A_SetBlend("Black",0.6,3)
      
			VOLZ A 0 A_ZoomFactor(1.75)
			VOLZ A 0 A_SetTranslucent(0.98,0)
			VOLZ A 1 A_SetBlend("Black",0.75,3)
      
			VOLZ A 0 A_ZoomFactor(1.5)
			VOLZ A 0 A_SetTranslucent(1,0)
			VOLZ A 1 A_SetBlend("Black",0.9,3)
      
			VOLZ A 0 A_ZoomFactor(1.0)
			VOLZ A 1 A_SetBlend("Black",0.9,3)
			VOLG AAAAAAAAAA 1 A_SetBlend("Black",1,3)

			VOLG A 15 A_SetBlend("Black",0.9,10)
			VOLG A 1
			Goto Deselect
		ZoomedReady:
			TNT1 A 0 A_JumpIfInventory("RO_GotoReload", 1, "Reload")
			TNT1 A 0 A_JumpIfInventory("RO_GotoZoom", 1, "Zoom")
			VOLZ A 1 A_WeaponReady(WRF_NOBOB)
			Loop
		ZoomedFire:
			VOLZ A 0 A_GunFlash
			VOLZ A 0 A_AlertMonsters
			VOLZ A 0 A_Recoil(1)
			VOLZ A 0 A_SetBlend("Orange",0.25,12)
			VOLZ A 0 A_PlaySound("Violator/Fire",1,1.0)
			VOLZ A 0 A_FireCustomMissile("ViolatorFireburst4",0,1,0,10,0)
			VOLZ A 0 A_FireCustomMissile("ViolatorFireburst5",0,0,0,10,0)
			VOLZ A 0 A_FireCustomMissile("ViolatorFireburst6",0,0,0,10,0)
			VOLZ A 0 A_FireCustomMissile("ViolatorFireburst7",0,0,0,10,0)
			VOLZ A 0 A_FireCustomMissile("ViolatorFireburst8",0,0,0,10,0)
			VOLZ A 0 A_FireCustomMissile("ViolatorFireburst1",0,0,0,10,0)
			VOLZ A 0 A_FireCustomMissile("ViolatorFireburst2",0,0,0,10,0)
			VOLZ A 0 A_FireCustomMissile("ViolatorFireburst3",0,0,0,10,0)
			VOLZ A 0 A_Quake(2,12,0,32,none)
			VOLZ A 0 A_GiveInventory("ErasusCasing",4)
			VOLZ A 0 A_SetPitch(Pitch-2)
			VOLZ A 1 A_ZoomFactor(2.99)
			VOLZ A 0 A_SetPitch(Pitch-1.5)
			VOLZ A 1 A_ZoomFactor(2.98)
			VOLZ A 0 A_PlaySound("Violator/Reload",5,0.5)
			VOLZ A 0 A_SetPitch(Pitch+1)
			VOLZ A 1 A_ZoomFactor(2.96)
			VOLZ A 0 A_SetPitch(Pitch+0.75)
			VOLZ A 1 A_ZoomFactor(2.94)
			VOLZ A 0 A_SetPitch(Pitch+0.5)
			VOLZ A 1 A_ZoomFactor(2.93)
			VOLZ A 0 A_SetPitch(Pitch+0.25)
			VOLZ A 1 A_ZoomFactor(2.92)
			VOLZ A 0 A_SetPitch(Pitch+0.25)
			VOLZ A 1 A_ZoomFactor(2.93)
			VOLZ A 0 A_SetPitch(Pitch+0.25)
			VOLZ A 1 A_ZoomFactor(2.94)
			VOLZ A 0 A_SetPitch(Pitch+0.25)
			VOLZ A 1 A_ZoomFactor(2.95)
			VOLZ A 0 A_SetPitch(Pitch+0.125)
			VOLZ A 1 A_ZoomFactor(2.96)
			VOLZ A 0 A_SetPitch(Pitch+0.125)
			VOLZ A 1 A_ZoomFactor(2.97)
			VOLZ A 1 A_ZoomFactor(2.98)
			VOLZ A 1 A_ZoomFactor(2.99)
			VOLZ A 1 A_ZoomFactor(3)
			VOLZ AA 1
			VOLZ A 5
			Goto Ready
	    ZoomedAltFire:
			VOLG A 0 A_JumpIfInventory("ErasusAmmo",1,1)
			Goto Ready
			VOLC A 0 A_JumpIfInventory("ViolatorCharge",10,"ZoomedUnleashTheFirestorm")
	    ZoomedCornishon:
			VOLC A 0 A_Quake(6,25,0,16,none)
		    	VOLC A 0 A_PlaySound("Violator/Charge",5,0.7,1)
			VOLZ A 25
			VOLC A 0 A_GiveInventory("ViolatorCharge",1)
			VOLC A 0 A_ReFire("ZoomedCornishon")
			VOLC A 0 A_StopSound(5)
			Goto Ready
	    ZoomedUnleashTheFirestorm:
			VOLZ A 0 A_GunFlash
			VOLZ A 0 A_AlertMonsters
			VOLZ A 0 A_Recoil(3)

			VOLF A 0 A_SetBlend("Orange",0.6,18)
			VOLF A 0 A_FireCustomMissile("Godsend")
			VOLF A 0 A_PlaySound("Violator/Fire",1,1.0)
			VOLF A 0 A_PlaySound("Violator/Alt",1,1.0)
			VOLF A 0 A_Quake(6,18,0,128,none)
			VOLZ A 0 A_GiveInventory("ErasusCasing",50)
			VOLZ A 0 A_TakeInventory("ErasusAmmo",50)
			VOLZ A 0 A_SetPitch(Pitch-4)
			VOLZ A 1 A_ZoomFactor(2.99)
			VOLZ A 0 A_SetPitch(Pitch-3)
			VOLZ A 1 A_ZoomFactor(2.97)
			VOLZ A 0 A_PlaySound("Violator/Reload",5,0.5)
			VOLZ A 0 A_SetPitch(Pitch+2)
			VOLZ A 1 A_ZoomFactor(2.95)
			VOLZ A 0 A_SetPitch(Pitch+1.5)
			VOLZ A 1 A_ZoomFactor(2.93)
			VOLZ A 0 A_SetPitch(Pitch+1)
			VOLZ A 1 A_ZoomFactor(2.91)
			VOLZ A 0 A_SetPitch(Pitch+0.5)
			VOLZ A 1 A_ZoomFactor(2.92)
			VOLZ A 0 A_SetPitch(Pitch+0.5)
			VOLZ A 1 A_ZoomFactor(2.93)
			VOLZ A 0 A_SetPitch(Pitch+0.5)
			VOLZ A 1 A_ZoomFactor(2.94)
			VOLZ A 0 A_SetPitch(Pitch+0.5)
			VOLZ A 1 A_ZoomFactor(2.95)
			VOLZ A 0 A_SetPitch(Pitch+0.25)
			VOLZ A 1 A_ZoomFactor(2.96)
			VOLZ A 0 A_SetPitch(Pitch+0.25)
			VOLZ A 1 A_ZoomFactor(2.97)
			VOLZ A 1 A_ZoomFactor(2.98)
			VOLZ A 1 A_ZoomFactor(2.99)
			VOLZ A 1 A_ZoomFactor(3)
			VOLZ AA 1
			VOLZ A 5
			Goto Ready
		ZoomedReload:
			VOLZ A 0 A_TakeInventory("ErasusCasing",50)
			VOLZ A 0 A_GunFlash
			VOLZ A 0 A_AlertMonsters
			VOLZ A 0 A_Recoil(1)
			VOLF A 0 A_PlaySound("Weapons/ErasusAltFire",1,0.9)
			VOLF A 0 A_PlaySound("Weapons/ErasusHammerFire",6,0.9)
			VOLF A 0 A_JumpIfInventory("QuadUpgrade",1,"ZoomedQuadReload")
			Goto Euuuungh
		ZoomedQuadReload:
			SSHG A 0 A_SetBlend("Blue",0.075,16)
			SSHG A 0 A_PlaySoundEx("Weapons/QuadShot","Auto")
		Euuuungh:
			VOLF A 0 A_FireCustomMissile("ViolatorSixpack",0,0,0,0,0,0)
			VOLZ A 0 A_Quake(2,12,0,32,none)
			VOLZ A 0 A_SetPitch(Pitch-2)
			VOLZ A 1 A_ZoomFactor(2.99)
			VOLZ A 0 A_SetPitch(Pitch-1.5)
			VOLZ A 1 A_ZoomFactor(2.98)
			VOLZ A 0 A_PlaySound("Violator/Reload",5,0.5)
			VOLZ A 0 A_SetPitch(Pitch+1)
			VOLZ A 1 A_ZoomFactor(2.96)
			VOLZ A 0 A_SetPitch(Pitch+0.75)
			VOLZ A 1 A_ZoomFactor(2.94)
			VOLZ A 0 A_SetPitch(Pitch+0.5)
			VOLZ A 1 A_ZoomFactor(2.93)
			VOLZ A 0 A_SetPitch(Pitch+0.25)
			VOLZ A 1 A_ZoomFactor(2.92)
			VOLZ A 0 A_SetPitch(Pitch+0.25)
			VOLZ A 1 A_ZoomFactor(2.93)
			VOLZ A 0 A_SetPitch(Pitch+0.25)
			VOLZ A 1 A_ZoomFactor(2.94)
			VOLZ A 0 A_SetPitch(Pitch+0.25)
			VOLZ A 1 A_ZoomFactor(2.95)
			VOLZ A 0 A_SetPitch(Pitch+0.125)
			VOLZ A 1 A_ZoomFactor(2.96)
			VOLZ A 0 A_SetPitch(Pitch+0.125)
			VOLZ A 1 A_ZoomFactor(2.97)
			VOLZ A 1 A_ZoomFactor(2.98)
			VOLZ A 1 A_ZoomFactor(2.99)
			VOLZ A 1 A_ZoomFactor(3)
			VOLZ AA 1
			VOLZ A 5
			Goto Ready
		Flash:
			TNT1 A 4
			TNT1 A 10
			Goto LightDone
			}
}

ACTOR ViolatorCharge : Ammo
{
   Inventory.Amount 1
   Inventory.MaxAmount 10
   Ammo.BackpackAmount 0
   Ammo.BackpackMaxAmount 10
   Inventory.Icon VOLGX0
   Inventory.PickupMessage "Did you just punch out a Cthulhu?"
   States
   {
   Spawn:
      TNT1 A -1
      Stop
   }
}

ACTOR ViolatorFireburst : FastProjectile
{
	Radius 10
	Height 12
	Speed 60
	Damage 9
	Projectile
	//MissileType "ViolatorFireburstTrail"
	+RIPPER
	-DONTBLAST
	DamageType Fire
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("Violator/Flight",5,0.5,1)
	TNT1 A 0 A_SpawnItem("ViolatorFireburstTrail")
	TNT1 A 0 A_SpawnItemEx("Violator_Fireburst_Smoke",random(10,-10),random(10,-10),random(10,-10),frandom(0.05,0.025),0,random(frandom(0.05,0.025),frandom(-0.05,-0.025)),frandom(0.0,360.0))
	TNT1 A 0 A_SpawnItemEx("Violator_Fireburst_Glow",random(10,-10),random(10,-10),random(10,-10),frandom(0.05,0.025),0,random(frandom(0.05,0.025),frandom(-0.05,-0.025)),frandom(0.0,360.0))
	TNT1 A 0 A_SpawnItemEx("Violator_Fireburst_Fire",random(10,-10),random(10,-10),random(10,-10),frandom(0.05,0.025),0,random(frandom(0.05,0.025),frandom(-0.05,-0.025)),frandom(0.0,360.0))
	TNT1 A 1 A_SpawnItemEx("Violator_Fireburst_Ember",random(10,-10),random(10,-10),random(10,-10),random(-1,-3),0,random(1,3),random(-15,15))
	Loop
	Death:
	TNT1 A 1 A_PlaySound("Violator/Hit",5,0.6)
	Stop
	}
}

ACTOR ViolatorFireburst1 : ViolatorFireburst
{
	WeaveIndexXY 0
	WeaveIndexZ 16
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Weave(1,1,2,2)
	TNT1 A 0 A_PlaySound("Violator/Flight",5,0.5,1)
	TNT1 A 0 A_SpawnItem("ViolatorFireburstTrail")
	TNT1 A 0 A_SpawnItemEx("Violator_Fireburst_Smoke",random(10,-10),random(10,-10),random(10,-10),frandom(0.05,0.025),0,random(frandom(0.05,0.025),frandom(-0.05,-0.025)),frandom(0.0,360.0))
	TNT1 A 0 A_SpawnItemEx("Violator_Fireburst_Glow",random(10,-10),random(10,-10),random(10,-10),frandom(0.05,0.025),0,random(frandom(0.05,0.025),frandom(-0.05,-0.025)),frandom(0.0,360.0))
	TNT1 A 0 A_SpawnItemEx("Violator_Fireburst_Fire",random(10,-10),random(10,-10),random(10,-10),frandom(0.05,0.025),0,random(frandom(0.05,0.025),frandom(-0.05,-0.025)),frandom(0.0,360.0))
	TNT1 A 1 A_SpawnItemEx("Violator_Fireburst_Ember",random(10,-10),random(10,-10),random(10,-10),random(-1,-3),0,random(1,3),random(-15,15))
	Loop
	Death:
	TNT1 A 1 A_PlaySound("Violator/Hit",5,0.6)
	Stop
	}
}


ACTOR ViolatorFireburst2 : ViolatorFireburst1
{
	WeaveIndexXY 8
	WeaveIndexZ 24
}
ACTOR ViolatorFireburst3 : ViolatorFireburst1
{
	WeaveIndexXY 16
	WeaveIndexZ 32
}
ACTOR ViolatorFireburst4 : ViolatorFireburst1
{
	WeaveIndexXY 24
	WeaveIndexZ 40
}
ACTOR ViolatorFireburst5 : ViolatorFireburst1
{
	WeaveIndexXY 32
	WeaveIndexZ 48
}
ACTOR ViolatorFireburst6 : ViolatorFireburst1
{
	WeaveIndexXY 40
	WeaveIndexZ 56
}
ACTOR ViolatorFireburst7 : ViolatorFireburst1
{
	WeaveIndexXY 48
	WeaveIndexZ 0
}
ACTOR ViolatorFireburst8 : ViolatorFireburst1
{
	WeaveIndexXY 56
	WeaveIndexZ 8
}

ACTOR ViolatorFireburstTrail : MageWandSmoke
{
	+NOINTERACTION
	+NOGRAVITY
	+CLIENTSIDEONLY
	Renderstyle Add
	Alpha 0.99
	Scale 0.04
	States
	{
	Spawn:
	VOIS A 0
	"####" "#" 1 Bright
	"####" "#" 1 Bright //A_SetScale(ScaleX+0.02,ScaleX)
	Looplo:
	"####" "#" 0 //A_SetScale(ScaleX-0.005,ScaleX)
	"####" "#" 1 Bright A_FadeOut(0.1)
	"####" "#" 0 //A_SetScale(ScaleX-0.005,ScaleX)
	"####" "#" 1 Bright A_FadeOut(0.1)
	"####" "#" 0 //A_SetScale(ScaleX-0.005,ScaleX)
	"####" "#" 1 Bright A_FadeOut(0.1)
	"####" "#" 0 //A_SetScale(ScaleX-0.005,ScaleX)
	"####" "#" 1 Bright A_FadeOut(0.1)
	"####" "#" 0 //A_SetScale(ScaleX-0.005,ScaleX)
	"####" "#" 1 Bright A_FadeOut(0.1)
	Stop
	}
}

ACTOR ViolatorFireburstGLDEF
{
	+NOINTERACTION
	+CLIENTSIDEONLY
	+NOGRAVITY
	States
	{
	Spawn:
	TNT1 A 8
	Stop
	}
}

ACTOR Violator_Fireburst_Fire
{
	Renderstyle Add
	+NOGRAVITY
	+NOINTERACTION
	+CLIENTSIDEONLY
	Alpha 0.8
	Scale 0.245
	States
	{
	Spawn:
		TNT1 AA 0 A_Jump(255, "SpawnA","SpawnB","SpawnC","SpawnD","SpawnE", "SpawnF", "SpawnG", "SpawnH")
	SpawnA:
		VIOL A 0 A_Jump(255, "FadeIn")
		Goto SpawnA
	SpawnB:
		VIOL B 0 A_Jump(255, "FadeIn")
		Goto SpawnB
	SpawnC:
		VIOL C 0 A_Jump(255, "FadeIn")
		Goto SpawnC
	SpawnD:
		VIOL D 0 A_Jump(255, "FadeIn")
		Goto SpawnD
	SpawnE:
		VIOL E 0 A_Jump(255, "FadeIn")
		Goto SpawnE
	SpawnF:
		VIOL F 0 A_Jump(255, "FadeIn")
		Goto SpawnF
	SpawnG:
		VIOL G 0 A_Jump(255, "FadeIn")
		Goto SpawnG
	SpawnH:
		VIOL H 0 A_Jump(255, "FadeIn")
		Goto SpawnH
	FadeIn:
		"####" "#" 0 Bright //A_SetScale(FRandom(0.24, 0.25))
		Goto Idle
	Idle:
		"####" "#" 3 Bright A_Jump(128, "FadeOut")
		Loop
	FadeOut:
		"####" "#" 1 Bright A_FadeOut(0.025)
		"####" "#" 0 A_ScaleVelocity(FRandom(1.03, 1.06))
		"####" "#" 0 //A_SetScale(ScaleX - FRandom(0.005, 0.003))
		Loop
	}
}

Actor Violator_Fireburst_Glow
{
	Renderstyle Add
	+NOGRAVITY
	+CLIENTSIDEONLY
	+NOINTERACTION
	Alpha 0.8
	Scale 0.245
	States
	{
		Spawn:
			TNT1 AA 0 A_Jump(255, "SpawnA", "SpawnB")
		SpawnA:
			FWAL M 0 A_Jump(255, "FadeIn")
			Goto SpawnA
		SpawnB:
			FWAL R 0 A_Jump(255, "FadeIn")
			Goto SpawnB
		FadeIn:
			"####" "#" 0 Bright //A_SetScale(FRandom(0.24, 0.25))
			Goto Idle
		Idle:
			"####" "#" 4 Bright A_Jump(128, "FadeOut")
			Loop
		FadeOut:
			"####" "#" 1 Bright A_FadeOut(0.02)
			"####" "#" 0 A_ScaleVelocity(FRandom(0.97, 0.99))
			"####" "#" 0 //A_SetScale(ScaleX + FRandom(0.005, 0.003))
			Loop
	}
}

Actor Violator_Fireburst_Smoke
{
	Alpha 0.0
	+NOGRAVITY
	+NOINTERACTION
	+CLIENTSIDEONLY
	Scale 0.475
	RenderStyle Translucent
	States
	{
		Spawn:
			TNT1 A 35
			TNT1 AA 0 A_Jump(255, "SpawnA", "SpawnB", "SpawnC", "SpawnD")
		SpawnA:
			VIOL N 0 A_Jump(255, "FadeIn")
			Goto SpriteA
		SpawnB:
			VIOL O 0 A_Jump(255, "FadeIn")
			Goto SpriteB
		SpawnC:
			VIOL P 0 A_Jump(255, "FadeIn")
			Goto SpriteC
		SpawnD:
			VIOL Q 0 A_Jump(255, "FadeIn")
			Goto SpriteD
		FadeIn:
			"####" "#" 0 //A_SetScale(FRandom(0.4, 0.55))
			Goto RealFadeIn
		RealFadeIn:
			"####" "#" 1 A_FadeIn(FRandom(0.01, 0.02))
			"####" "#" 0 A_JumpIf(Alpha >= 0.2, "Idle")
			Loop
		Idle:
			"####" "#" 4 A_Jump(64, "FadeOut")
			Loop
		FadeOut:
			"####" "#" 1 A_FadeOut(0.02)
			/* "####" "#" 0 A_ChangeVelocity(VelX * FRandom(0.97, 0.99),
										  VelY * FRandom(0.97, 0.99),
										  VelZ + FRandom(0.12, 0.26),
										  CVF_REPLACE) */
			"####" "#" 0 A_ScaleVelocity(0.96)
			"####" "#" 0 //A_SetScale(ScaleX + FRandom(0.015, 0.025))
			Loop
	}
}

ACTOR Violator_Fireburst_Ember
{
	+NOINTERACTION
	+NOGRAVITY
	+CLIENTSIDEONLY
	Renderstyle Add
	Alpha 0.0
	Scale 0.05
	States
	{
	Spawn:
	TNT1 AA 0 A_Jump(255, "SpawnA", "SpawnB", "SpawnC")
	SpawnA:
	VIOL J 0 A_Jump(255, "FadeIn")
	Goto SpawnA
	SpawnB:
	VIOL K 0 A_Jump(255, "FadeIn")
	Goto SpawnB
	SpawnC:
	VIOL L 0 A_Jump(255, "FadeIn")
	Goto SpawnC
	FadeIn:
	"####" "##########" 1 Bright A_FadeIn(0.1)
	"####" "####" 1 Bright
	Looplo:
	"####" "#" 0 //A_SetScale(ScaleX-0.005,ScaleX)
	"####" "#" 1 Bright A_FadeOut(0.1)
	Loop
	}
}

//TERTIARY FIRE

ACTOR ViolatorSixpack
{
   +NOINTERACTION
   +NOGRAVITY
   States
   {
   Spawn:
   TNT1 A 0
   TNT1 A 0 A_SetAngle(Angle+30)
   TNT1 A 0 A_SpawnItemEx("VolcanoShell",0,0,0,20,0,0,60,SXF_TRANSFERPOINTERS)
   TNT1 A 0 A_SpawnItemEx("VolcanoShell",0,0,0,20,0,0,120,SXF_TRANSFERPOINTERS)
   TNT1 A 0 A_SpawnItemEx("VolcanoShell",0,0,0,20,0,0,180,SXF_TRANSFERPOINTERS)
   TNT1 A 0 A_SpawnItemEx("VolcanoShell",0,0,0,20,0,0,240,SXF_TRANSFERPOINTERS)
   TNT1 A 0 A_SpawnItemEx("VolcanoShell",0,0,0,20,0,0,300,SXF_TRANSFERPOINTERS)
   TNT1 A 0 A_SpawnItemEx("VolcanoShell",0,0,0,20,0,0,0,SXF_TRANSFERPOINTERS)
   Stop
   }
}

ACTOR VolcanoShell
{
   Obituary "%o was smoted by %k's mobile shell casing volcano."
   Radius 14
   Height 10
   Speed 20
   Damage 0
   BounceSound "VolcanoShell/Bounce"
   PROJECTILE
   +DONTBLAST
   +THRUACTORS
   +MISSILE
   +STEPMISSILE
   +DROPOFF
   +NOEXPLODEFLOOR
   +FORCERADIUSDMG
   +BLOODLESSIMPACT
   +THRUGHOST
   +EXPLODEONWATER
   -NOGRAVITY
   MaxStepHeight 36
   Gravity 0.75
   ReactionTime 40
   Scale 2
   States
   {
   Spawn:
      SHLP O 0
   ashdhskdfherigsdsadfdsfhjg:
      SHLP A 0 A_Countdown
      SHLP O 0 A_JumpIfInTargetInventory("QuadUpgrade",1,"ASHDHSKDFHERIGSDSADFDSFHJG")
	  SHLP O 0 A_SpawnItemEx("ShellProjectile",random(10,-10),random(10,-10),random(15,5),frandom(5.0,25.0),frandom(5.0,25.0),frandom(10.0,35.0),frandom(0.0,360.0),SXF_TRANSFERPOINTERS)
	  SHLP OO 0 A_SpawnItemEx("NoPickShellProjectile",random(10,-10),random(10,-10),random(15,5),frandom(5.0,25.0),frandom(5.0,25.0),frandom(10.0,35.0),frandom(0.0,360.0),SXF_TRANSFERPOINTERS)
      SHLP O 1
      Loop
   ASHDHSKDFHERIGSDSADFDSFHJG:
	  QHLP OO 0 A_SpawnItemEx("QuadShellProjectile",random(10,-10),random(10,-10),random(15,5),frandom(5.0,25.0),frandom(5.0,25.0),frandom(10.0,35.0),frandom(0.0,360.0),SXF_TRANSFERPOINTERS)
	  QHLP O 0 A_SpawnItemEx("QuadNoPickShellProjectile",random(10,-10),random(10,-10),random(15,5),frandom(5.0,25.0),frandom(5.0,25.0),frandom(10.0,35.0),frandom(0.0,360.0),SXF_TRANSFERPOINTERS)
      QHLP O 1
      Goto ashdhskdfherigsdsadfdsfhjg
   Death:
      SHLP O 0 A_JumpIfInTargetInventory("QuadUpgrade",1,"QuadDeath")
      SHLP O 150
	  SHLP O 1 A_FadeOut(0.05)
      Wait
   QuadDeath:
      QHLP O 150
	  QHLP O 1 A_FadeOut(0.05)
      Wait
   }
}
